package com.ruoyi.system.service;

import java.util.List;
import com.ruoyi.system.domain.BizPurchaseOrder;

/**
 * 采购订单Service接口
 * 
 * @author ruoyi
 * @date 2025-10-20
 */
public interface IBizPurchaseOrderService 
{
    /**
     * 查询采购订单
     * 
     * @param orderId 采购订单主键
     * @return 采购订单
     */
    public BizPurchaseOrder selectBizPurchaseOrderByOrderId(Long orderId);

    /**
     * 查询采购订单列表
     * 
     * @param bizPurchaseOrder 采购订单
     * @return 采购订单集合
     */
    public List<BizPurchaseOrder> selectBizPurchaseOrderList(BizPurchaseOrder bizPurchaseOrder);

    /**
     * 新增采购订单
     * 
     * @param bizPurchaseOrder 采购订单
     * @return 结果
     */
    public int insertBizPurchaseOrder(BizPurchaseOrder bizPurchaseOrder);

    /**
     * 修改采购订单
     * 
     * @param bizPurchaseOrder 采购订单
     * @return 结果
     */
    public int updateBizPurchaseOrder(BizPurchaseOrder bizPurchaseOrder);

    /**
     * 批量删除采购订单
     * 
     * @param orderIds 需要删除的采购订单主键集合
     * @return 结果
     */
    public int deleteBizPurchaseOrderByOrderIds(Long[] orderIds);

    /**
     * 删除采购订单信息
     * 
     * @param orderId 采购订单主键
     * @return 结果
     */
    public int deleteBizPurchaseOrderByOrderId(Long orderId);

    /**
     * 查询采购订单明细联表视图列表
     *
     * @param view 查询条件（支持 orderNo、supplierCode）
     * @return 采购订单明细视图集合
     */
    public java.util.List<com.ruoyi.system.domain.BizPurchaseOrderItemView> selectBizPurchaseOrderItemJoinedList(com.ruoyi.system.domain.BizPurchaseOrderItemView view);

    /**
     * 更新采购订单明细状态（QUALITY_PASSED / QUALITY_FAILED 等）
     *
     * @param itemId 明细ID
     * @param itemStatus 状态值
     * @return 影响行数
     */
    public int updateBizPurchaseOrderItemStatus(Long itemId, String itemStatus);
}
